home *** CD-ROM | disk | FTP | other *** search
/ Winzipper / Winzipper_ISO.iso / programming / oracle7 7.2 / DB / UTIL72 / EXAMPBLD.SQL < prev    next >
Encoding:
Text File  |  1995-05-18  |  4.0 KB  |  167 lines

  1. rem 
  2. rem $Header: exampbld.sql 7020100.1 94/09/28 16:39:50 cli Generic<base> $ 
  3. rem 
  4. Rem  Copyright (c) 1991 by Oracle Corporation 
  5. Rem    NAME
  6. Rem      exampbld.sql - <one-line expansion of the name>
  7. Rem    DESCRIPTION
  8. Rem      <short description of component this file declares/defines>
  9. Rem    RETURNS
  10. Rem 
  11. Rem    NOTES
  12. Rem      <other useful comments, qualifications, etc.>
  13. Rem    MODIFIED   (MM/DD/YY)
  14. Rem     gclossma   12/02/92 -  Creation 
  15. set compatibility V6
  16. /
  17. drop table accounts
  18. /
  19. create table accounts(
  20.     account_id  number(4) not null,
  21.     bal         number(11,2))
  22. /
  23. create unique index accounts_index on accounts (account_id)
  24. /
  25. drop table action
  26. /
  27. create table action(
  28.     account_id  number(4) not null,
  29.     oper_type   char(1) not null,
  30.     new_value   number(11,2),
  31.     status      char(45),
  32.     time_tag    date not null)
  33. /
  34. drop table bins
  35. /
  36. create table bins(
  37.     bin_num     number(2) not null,
  38.     part_num    number(4),
  39.     amt_in_bin  number(4))
  40. /
  41. drop table data_table
  42. /
  43. create table data_table(
  44.     exper_num  number(2),
  45.     n1         number(5),
  46.     n2         number(5),
  47.     n3         number(5))
  48. /
  49. drop table emp
  50. /
  51. create table emp(
  52.     empno      number(4) not null,
  53.     ename      char(10),
  54.     job        char(9),
  55.     mgr        number(4),
  56.     hiredate   date,
  57.     sal        number(7,2),
  58.     comm       number(7,2),
  59.     deptno     number(2))
  60. /
  61. drop table inventory
  62. /
  63. create table inventory(
  64.     prod_id     number(5) not null,
  65.     product     char(15),
  66.     quantity    number(5))
  67. /
  68. drop table journal
  69. /
  70. create table journal(
  71.     account_id   number(4) not null,
  72.     action       char(45) not null,
  73.     amount       number(11,2),
  74.     date_tag     date not null)
  75. /
  76. drop table num1_tab
  77. /
  78. create table num1_tab(
  79.     sequence   number(3) not null,
  80.     num        number(4))
  81. /
  82. drop table num2_tab
  83. /
  84. create table num2_tab(
  85.     sequence   number(3) not null,
  86.     num        number(4))
  87. /
  88. drop table purchase_record
  89. /
  90. create table purchase_record(
  91.     mesg        char(45),
  92.     purch_date  date)
  93. /
  94. drop table ratio
  95. /
  96. create table ratio(
  97.     sample_id  number(3) not null,
  98.     ratio      number)
  99. /
  100. drop table result_table
  101. /
  102. create table result_table(
  103.     sample_id  number(3) not null,
  104.     x          number,
  105.     y          number)
  106. /
  107. drop table sum_tab
  108. /
  109. create table sum_tab(
  110.     sequence   number(3) not null,
  111.     sum        number(5))
  112. /
  113. drop table temp
  114. /
  115. create table temp(
  116.     num_col1   number(9,4),
  117.     num_col2   number(9,4),
  118.     char_col   char(55))
  119. /
  120. create or replace package personnel as
  121.     type charArrayTyp is table of varchar2(10)
  122.         index by binary_integer;
  123.     type numArrayTyp is table of float
  124.         index by binary_integer;
  125.     procedure get_employees(
  126.         dept_number in     integer,
  127.         batch_size  in     integer,
  128.         found       in out integer,
  129.         done_fetch  out    integer,
  130.         emp_name    out    charArrayTyp,
  131.         job_title   out    charArrayTyp,
  132.         salary      out    numArrayTyp);
  133. end personnel;
  134. /
  135. create or replace package body personnel as
  136.     cursor get_emp (dept_number integer) is
  137.         select ename, job, sal from emp
  138.             where deptno = dept_number;
  139.     procedure get_employees(
  140.         dept_number in     integer,
  141.         batch_size  in     integer,
  142.         found       in out integer,
  143.         done_fetch  out    integer,
  144.         emp_name    out    charArrayTyp,
  145.         job_title   out    charArrayTyp,
  146.         salary      out    numArrayTyp) is
  147.     begin
  148.         if not get_emp%isopen then
  149.             open get_emp(dept_number);
  150.         end if;
  151.         done_fetch := 0;
  152.         found := 0;
  153.         for i in 1..batch_size loop
  154.             fetch get_emp into emp_name(i),
  155.                     job_title(i), salary(i);
  156.             if get_emp%notfound then
  157.                 close get_emp;
  158.                 done_fetch := 1;
  159.                 exit;
  160.             else
  161.                 found := found + 1;
  162.             end if;
  163.         end loop;
  164.     end get_employees;
  165. end personnel;
  166. /
  167.